class ResultData {
    static init(code, msg, data = null, metadata = null) {
        if (data == null) {
            return {
                code,
                msg,
                ...metadata,
            };
        } else {
            return {
                code,
                msg,
                data,
                ...metadata,
            };
        }
    }

    static success(data, msg, metadata) {
        return ResultData.init(0, msg || 'success', data, metadata);
    }
    static fail(msg, data, metadata) {
        return ResultData.init(1, msg || 'fail', data, metadata);
    }
}

export default ResultData;
